﻿Public Class FrmCapNhatThongTinKhachHang
    Private flag As Boolean
    Private Sub FrmCapNhatThongTinKhachHang_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        LoadDS()
        LockButton(True)
        LockTextbox(False)
    End Sub
    'load danh sach len data table
    Sub LoadDS()
        Dim ds As DataTable
        ds = CapNhatThongTinKH_DAO.SelectAll()
        dgvTTKhachHang.DataSource = ds
    End Sub

    'xóa trắng các textbox
    Sub ClearTextbox()
        txtMaKH.Text = ""
        txtTenKH.Text = ""
        txtDiaChi.Text = ""
        txtSDT.Text = ""
        txtSoFax.Text = ""
    End Sub

    'đồng bộ các nút chức năng giống nhau
    Sub LockButton(ByVal bt As Boolean)
        btnThemTTKH.Enabled = bt
        btnSuaTTKH.Enabled = bt
        btnXoaTTKH.Enabled = bt
        btnLuuTTKH.Enabled = Not bt
        btnKhongLuuTTKH.Enabled = Not bt
        btnThoat.Enabled = bt
    End Sub

    'lock các textbox 
    Sub LockTextbox(ByVal tb As Boolean)
        txtMaKH.Enabled = tb
        txtTenKH.Enabled = tb
        txtDiaChi.Enabled = tb
        txtSDT.Enabled = tb
        txtSoFax.Enabled = tb
        If tb = False Then
            txtMaKH.BackColor = Color.GreenYellow
            txtTenKH.BackColor = Color.GreenYellow
            txtDiaChi.BackColor = Color.GreenYellow
            txtSDT.BackColor = Color.GreenYellow
            txtSoFax.BackColor = Color.GreenYellow
        Else
            txtMaKH.BackColor = Color.White
            txtTenKH.BackColor = Color.White
            txtDiaChi.BackColor = Color.White
            txtSDT.BackColor = Color.White
            txtSoFax.BackColor = Color.White
        End If
    End Sub

    Sub Them()
        Dim kh As CapNhatThongTinKH_DTO = New CapNhatThongTinKH_DTO()
        kh.MaCTY = txtMaKH.Text
        kh.TenCTY = txtTenKH.Text
        kh.DiaChi = txtDiaChi.Text
        kh.SoDT = txtSDT.Text
        kh.SoFax = txtSoFax.Text
        CapNhatThongTinKH_DAO.Insert(kh)
        LoadDS()

    End Sub

    Sub Xoa()
        Dim kh As CapNhatThongTinKH_DTO = New CapNhatThongTinKH_DTO()
        kh.MaCTY = txtMaKH.Text
        CapNhatThongTinKH_DAO.Delete(kh)
        LoadDS()
    End Sub

    Sub Sua()
        Dim kh As CapNhatThongTinKH_DTO = New CapNhatThongTinKH_DTO()
        kh.MaCTY = txtMaKH.Text
        kh.TenCTY = txtTenKH.Text
        kh.DiaChi = txtDiaChi.Text
        kh.SoDT = txtSDT.Text
        kh.SoFax = txtSoFax.Text

        CapNhatThongTinKH_DAO.Update(kh)
        LoadDS()
    End Sub
    Private Function TestData() As Boolean
        TestData = True
        If Trim(txtMaKH.Text) = "" Then
            TestData = False
            MsgBox("Nhập mã khách hàng !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtMaKH.Focus()
            Exit Function
        ElseIf Trim(txtTenKH.Text) = "" Then
            TestData = False
            MsgBox("Nhập tên khách hàng !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtTenKH.Focus()
            Exit Function
        ElseIf Trim(txtDiaChi.Text) = "" Then
            TestData = False
            MsgBox("Nhập địa chỉ khách hàng !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtDiaChi.Focus()
            Exit Function
        ElseIf (IsNumeric(txtSDT.Text) = False) Then
            MsgBox("Số điện thoại phải là số  !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            Exit Function
        ElseIf Trim(txtSDT.Text) = "" Then
            TestData = False
            MsgBox("Nhập số điện thoại khách hàng !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtSDT.Focus()
            Exit Function
        ElseIf Trim(txtSoFax.Text) = "" Then
            TestData = False
            MsgBox("Nhập số fax của khách hàng !", MsgBoxStyle.Exclamation, "Thông Báo Lỗi")
            txtSoFax.Focus()
            Exit Function
        End If
    End Function
    'load các thuộc tính từ lưới lên textbox
    Sub HienThi()
        If (dgvTTKhachHang.SelectedRows.Count > 0) Then
            txtMaKH.Text = dgvTTKhachHang.SelectedRows(0).Cells(0).Value.ToString()
            txtTenKH.Text = dgvTTKhachHang.SelectedRows(0).Cells(1).Value.ToString()
            txtDiaChi.Text = dgvTTKhachHang.SelectedRows(0).Cells(2).Value.ToString()
            txtSDT.Text = dgvTTKhachHang.SelectedRows(0).Cells(3).Value.ToString()
            txtSoFax.Text = dgvTTKhachHang.SelectedRows(0).Cells(3).Value.ToString()
        End If
    End Sub

    Private Sub btnThemTTKH_Click(sender As Object, e As EventArgs) Handles btnThemTTKH.Click
        flag = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvTTKhachHang.Enabled = False
        txtMaKH.Focus()
    End Sub

    Private Sub btnSuaTTKH_Click(sender As Object, e As EventArgs) Handles btnSuaTTKH.Click
        flag = False
        LockTextbox(True)
        LockButton(False)
        dgvTTKhachHang.Enabled = False
        txtMaKH.Focus()
    End Sub

    Private Sub btnXoaTTKH_Click(sender As Object, e As EventArgs) Handles btnXoaTTKH.Click
        Xoa()
    End Sub

    Private Sub btnLuuTTKH_Click(sender As Object, e As EventArgs) Handles btnLuuTTKH.Click
        If TestData() Then
            If flag = True Then
                Them()
            Else
                Sua()
            End If
            LockTextbox(False)
            LockButton(True)
            dgvTTKhachHang.Enabled = True
            MsgBox("cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông Báo !")
        End If
    End Sub

    Private Sub btnKhongLuuTTKH_Click(sender As Object, e As EventArgs) Handles btnKhongLuuTTKH.Click
        LoadDS()
        LockTextbox(False)
        LockButton(True)
        dgvTTKhachHang.Enabled = True
    End Sub

    Private Sub btnThoat_Click(sender As Object, e As EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub

    Private Sub dgvTTKhachHang_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvTTKhachHang.CellContentClick
        HienThi()
    End Sub

    Private Sub dgvTTKhachHang_SelectionChanged(sender As Object, e As EventArgs) Handles dgvTTKhachHang.SelectionChanged
        HienThi()
    End Sub
End Class